#include <Arduino.h>
/* 正常流水灯
// 定义 GPIO 引脚数组
int pin_list[5] = {16, 17, 18, 8, 3};
// 获取数组长度
int size = sizeof(pin_list) / sizeof(pin_list[0]);

void setup() {
  // 设定 GPIO 引脚为输出模式
  for (int i=0; i<size;i++) {
    pinMode(pin_list[i], OUTPUT);
    }
}

void loop() {
  // 将所有引脚设置为高电平
  for (int i=0;i<size;i++) {
    digitalWrite(pin_list[i], HIGH);
    delay(50);
    }
  // 将所有引脚设置为低电平
  for (int i=size-1;i>=size;i--) {
    digitalWrite(pin_list[i], LOW);
    delay(50);
    }
}
*/

/* 反转流水灯
int pin_list[5] = {16, 17, 18, 8, 3};
// 获取数组长度
int size = sizeof(pin_list) / sizeof(pin_list[0]);

void setup() {
  // 设定 GPIO 引脚为输出模式
  for (int i=0; i<size;i++) {
    pinMode(pin_list[i], OUTPUT);
    }
}

void loop() {
  // 将所有引脚设置为高电平
  for (int i=0;i<size;i++) {
    digitalWrite(pin_list[i], HIGH);
    delay(50);
    }
  // 将所有引脚设置为低电平
    delay(100);
  for (int i=size-1;i>=0;i--) {
    digitalWrite(pin_list[i], LOW);
    delay(50);
    }
}
*/

/*LED 移动
int pin_list[5] = {16, 17, 18, 8, 3};
// 获取数组长度
int size = sizeof(pin_list) / sizeof(pin_list[0]);

void setup() {
  // 设定 GPIO 引脚为输出模式
  for (int i=0; i<size;i++) {
    pinMode(pin_list[i], OUTPUT);
    }
}

void loop() {
  // 将所有引脚设置为高电平
  for (int i=0;i<size;i++) {
    digitalWrite(pin_list[i], HIGH);
    if(i > 0) {
      digitalWrite(pin_list[i-1], LOW);
    }else{
      digitalWrite(pin_list[size-1], LOW);
    }
    delay(250);
    }
}
*/

// LED 移动反复
int pin_list[5] = {16, 17, 18, 8, 3};
// 获取数组长度
int size = sizeof(pin_list) / sizeof(pin_list[0]);

void setup() {
  // 设定 GPIO 引脚为输出模式
  for (int i=0; i<size;i++) {
    pinMode(pin_list[i], OUTPUT);
    }
}

void loop() {
  // 将所有引脚设置为高电平
  for (int i=0;i<size;i++) {
    digitalWrite(pin_list[i], HIGH);
    if(i > 0) {
      digitalWrite(pin_list[i-1], LOW);
    }else{
      digitalWrite(pin_list[size-1], LOW);
    }
    delay(50);
    }
  for (int i=size-1;i>=0;i--) {
    digitalWrite(pin_list[i], HIGH);
    if(i < size-1) {
      digitalWrite(pin_list[i+1], LOW);
    }else{
      digitalWrite(pin_list[0], LOW);
    }
    delay(50);
    }
}